<?php
#!/bin/bash

/**
 * User: hzbskak
 * Date: 2020/1/13 - 16:32
 */

namespace model\wayModel\area;

use app\admin\model\HtHotelModel;
use app\admin\model\PlAreaModel;

header("Content-type: text/html; charset=utf-8");
/**
 * 地区方法公共模型
 * Class WArea
 * @package model\wayModel\area
 */
class WArea
{

    /**
     * 获取地区上的所有父级(包括自己)
     * @date 2020年1月14日15:37:34
     * @f1 查询地区信息
     * @f2 f1的父级不为零，把f1结果输入到数组中，携带该数组进行递归
     * @f3 直到父级为零，返回该数组
     * @param $id int 地区ID
     * @param $area_data array 地区数据
     * @return PlAreaModel|array|null
     * @throws \think\exception\DbException
     */
    public function areaGetAllParent( $id, $area_data = [])
    {
        $area = PlAreaModel::get( $id); // 查询地区数据

        if( !$area)
        {
            return $area_data;
        }

        if( $area['parent'] != 0)
        {
            $area_data[] = $area; // 把当前数据存入数组
            return $this->areaGetAllParent( $area['parent'], $area_data); // 递归调用
        }
        else
        {
            $area_data[] = $area;
            return $area_data; // 最高级时返回
        }
    }

    /**
     * 通过酒店所属地区获取该地区所有父类(包括自己)
     * @date 2020年1月14日14:58:36
     * @param $hotel_id int 酒店ID
     * @param $type string 类型(酒店:hotel,房型:room,价格计划:rp)
     * @return mixed
     * @throws \think\exception\DbException
     */
    public function hotelGetAllAreaParent( $hotel_id, $type = 'hotel')
    {
        $hotel = HtHotelModel::get( $hotel_id);

        $area = $this->areaGetAllParent( $hotel['area_id']); // 获取该酒店所属地区的所有父级(包括自己)

        $return['hotel'] = $hotel;
        $return['area'] = $area;

        return $return;
    }

















}